import { defineStore } from "pinia";
interface lotteryMoney {
  isNeedPolling?: boolean; // 是否需要,轮询
  isUseSocketing: boolean; // 是否正在使用 socket
  isDoneLotteryInfo?: boolean; // 抽奖信息是否加载完成
  isDoneBetList?: boolean; // 第一阶段,下注列表
  isDoneTop1Info?: boolean; // 第二阶段,第一名信息,是否加载完成
  isDoneTop4list?: boolean; // 最近开卡记录时候加载完成
  drawStage: number; // 当前是第几阶段 默认0 未开始/已结束  1. 倒计时下注阶段 2.pk 阶段  3.上连中  4.未开卡阶段
  beginTime?: string; // 活动开始时间
  firstStageEndTime?: string; // 第二阶段开始时间 -- 第一阶段结束时间
  pkEndTime?: string; // 第三阶段开始时间 -- 第二阶段结束时间
  pkSyncEndTime?: string; // 第四阶段开始时间 -- 第三阶段结束时间
  pkOpenEndTime?: string; // 第五阶段开始时间 -- 第四阶段结束时间
  pkTop4Arr?: any[]; // 第二阶段前四名数据
  isShowInviteLottery: boolean; // 是否展示邀请好友参与大嬴家页面入口
  inviteLotteryCode?: string; // 抽美金,邀请好友邀请码
  openCardIds: any[]; // 20 条,开卡记录,用于去重
  activitytStatus: number; // 当前活动状态
  
}

export const useLotteryMoneyStore = defineStore("lotteryMoney/state", {
  state: (): lotteryMoney => {
    return {
      activitytStatus: 3,
      isUseSocketing: false,
      drawStage: 0,
      pkTop4Arr: [],
      isDoneLotteryInfo: false,
      isDoneBetList: false,
      isDoneTop1Info: false,
      isDoneTop4list: false,
      isShowInviteLottery: false,
      inviteLotteryCode: "",
      openCardIds: [],
    };
  },
  getters: {
    /**
     * 是否可以,请求接口
     * 2024.08.09 14:00 早上开会决定,彻底抛弃轮训
     * */
    isNeedPolling: (state) => {
      // console.warn("当前是第", state.drawStage, "阶段 .");
      if (!state.isUseSocketing) return true;
      if (state.drawStage == 1) {
        // console.log("isDoneLotteryInfo:", state.isDoneLotteryInfo);
        // console.log("isDoneBetList:", state.isDoneBetList);
        return !(state.isDoneLotteryInfo && state.isDoneBetList);
      } else if (
        state.drawStage == 2 ||
        state.drawStage == 3 ||
        state.drawStage == 4
      ) {
        // console.log("isDoneLotteryInfo:", state.isDoneLotteryInfo);
        // console.log("isDoneTop1Info:", state.isDoneTop1Info);
        // console.log("isDoneTop4list:", state.isDoneTop4list);
        return !(
          state.isDoneLotteryInfo &&
          state.isDoneTop1Info &&
          state.isDoneTop4list
        );
      } else {
        return true;
      }
    },
  },
  actions: {
    addOpenCardIds(val: any) {
      if (!val) return;
      this.openCardIds.unshift(val);
    },
    /**
     * @description: 关闭链接 重置 某些状态
     */
    resetPollingData() {
      this.isDoneLotteryInfo = false;
      this.isDoneTop1Info = false;
      this.isDoneBetList = false;
      this.isDoneTop4list = false;
      this.isUseSocketing = false;
      this.openCardIds = [];
    },
    /**
     * @description: 重置所有状态
     */
    resetData() {
      this.drawStage = 0;
      this.isUseSocketing = false;
      this.pkTop4Arr = [];

      this.resetPollingData();
    },
  },
});
